# Author:Mayidan
# 时间：0923-week04
# 模拟数据库数据
user_data = ["xiaoma","xiaowu","xiaogao","xiaoli"]
password_data = ["000000"]
vip_user_data = ["xiaoma"]

# 输入次数(只有五次登录的机会)
count = 5
while True:
    count -= 1

    # 用户输入账号密码
    username = input("请输入您的账号")
    password = input("请输入您的密码")

    # 判断是否本网站用户
    if username in user_data or username in vip_user_data:
        if username in vip_user_data:
            if password in password_data:
                count = 10  # 会员有十次查询机会
                print("欢迎亲爱的VIP用户%s登录系统使用~"%(username))
                print("您有" ,count, "次查询机会")
                # 输入查询日期
                from datetime import datetime
                # 利用num_to_string函数返回中文“星期几”
                def num_to_string(num):
                    numbers = {
                        0: "星期日",
                        1: "星期一",
                        2: "星期二",
                        3: "星期三",
                        4: "星期四",
                        5: "星期五",
                        6: "星期六"
                    }
                    return numbers.get(num, None)
                # 输入指定的日期（年 月 日 ）
                y = int(input("请输入查询年份"))
                m = int(input("请输入查询月份"))
                d = int(input("请输入查询日期"))
                # 调用内置函数datetime来获取指定日期是星期几
                date = datetime.date(datetime(year=y, month=m, day=d))
                #  使用 isoweekday ()函数，得出0~6表示星期一到星期日
                n = str(date.isoweekday())
                #  获取n的值，用int来提取n的整型值
                week = input("{3}".format(y, m, d, num_to_string(int(n))))
                week_day = int(n)

                import datetime
                time = datetime.datetime.today().hour  # 表示现在是几点
                week_time = int(time)

                if week_day == 1:
                    print("你周一有一门课")
                    if week_time < 12:
                        print("但是上午没有课，赶快睡觉！")
                    elif 12 < week_time < 18:  # 用and使两个条件同时成立，否则大于18也会输出下午的课程
                        print("下午有8-9节大学英语10-303")
                    elif week_time > 18:
                        print("但是晚上没有课，赶快睡觉！")

                elif week_day == 2:
                    print("你周二有两门课")
                    if week_time < 12:
                        print("上午有3-5节创业基础1-205")
                    if 12 < week_time < 18:
                        print("下午有8-9节H5互动技术与应用")
                    if week_time > 18:
                        print("但是晚上没有课，赶快睡觉！")

                elif week_day == 3:
                    print("你周三有三门课")
                    if week_time < 12:
                        print("上午有1-2节击剑体育馆西面，3-5节毛概理论9-201")
                    if 12 < week_time < 18:
                        print("但是下午没有课，赶快睡觉！")
                    if week_time > 18:
                        print("晚上有12-13节大学英语10-303")

                elif week_day == 4:
                    print("你周四有两门课")
                    if week_time < 12:
                        print("上午有3-5节Python新综612")
                    if 12 < week_time < 18:
                        print("下午有8-9节毛概实践9-307")
                    if week_time > 18:
                        print("但是晚上没有课，赶快睡觉！")

                elif week_day == 5:
                    print("你周五有一门课：1-2节Ai软件应用新综612")
                    if week_time < 12:
                        print("上午有1-2节Ai软件应用新综612")
                    if 12 < week_time < 18:
                        print("但是下午没有课，赶快睡觉！")
                    if week_time > 18:
                        print("但是晚上没有课，赶快睡觉！")

                else:
                    print("周末没有课，赶快睡觉！")
                count -= 1
                print("是否需要继续查看课表？ "
                      "您还有", count, '次查询机会')
                choose_true = "Y"
                choose_false = "N"
                while True:
                    count -= 1
                    user_choose = input("请输入 Y or N：")
                    if user_choose == choose_true:
                        # 输入查询日期
                        from datetime import datetime
                        # 利用num_to_string函数返回中文“星期几”
                        def num_to_string(num):
                            numbers = {
                                0: "星期日",
                                1: "星期一",
                                2: "星期二",
                                3: "星期三",
                                4: "星期四",
                                5: "星期五",
                                6: "星期六"
                            }
                            return numbers.get(num, None)
                        # 输入指定的日期（年 月 日 ）
                        y = int(input("请输入查询年份"))
                        m = int(input("请输入查询月份"))
                        d = int(input("请输入查询日期"))
                        # 调用内置函数datetime来获取指定日期是星期几
                        date = datetime.date(datetime(year=y, month=m, day=d))
                        #  使用 isoweekday ()函数，得出0~6表示星期一到星期日
                        n = str(date.isoweekday())
                        #  获取n的值，用int来提取n的整型值
                        week = input("{3}".format(y, m, d, num_to_string(int(n))))
                        week_day = int(n)

                        import datetime

                        time = datetime.datetime.today().hour  # 表示现在是几点
                        week_time = int(time)

                        if week_day == 1:
                            print("你周一有一门课，8-9节大学英语10-303")
                            if week_time < 12:
                                print("但是上午没有课，赶快睡觉！")
                            elif 12 < week_time < 18:  # 用and使两个条件同时成立，否则大于18也会输出下午的课程
                                print("下午有8-9节大学英语10-303")
                            elif week_time > 18:
                                print("但是晚上没有课，赶快睡觉！")

                        elif week_day == 2:
                            print("你周二有两门课")
                            if week_time < 12:
                                print("上午有3-5节创业基础1-205")
                            if 12 < week_time < 18:
                                print("下午有8-9节H5互动技术与应用")
                            if week_time > 18:
                                print("但是晚上没有课，赶快睡觉！")

                        elif week_day == 3:
                            print("你周三有三门课")
                            if week_time < 12:
                                print("上午有1-2节击剑体育馆西面，3-5节毛概理论9-201")
                            if 12 < week_time < 18:
                                print("但是下午没有课，赶快睡觉！")
                            if week_time > 18:
                                print("晚上有12-13节大学英语10-303")

                        elif week_day == 4:
                            print("你周四有两门课")
                            if week_time < 12:
                                print("上午有3-5节Python新综612")
                            if 12 < week_time < 18:
                                print("下午有8-9节毛概实践9-307")
                            if week_time > 18:
                                print("但是晚上没有课，赶快睡觉！")

                        elif week_day == 5:
                            print("你周五有一门课：1-2节Ai软件应用新综612")
                            if week_time < 12:
                                print("上午有1-2节Ai软件应用新综612")
                            if 12 < week_time < 18:
                                print("但是下午没有课，赶快睡觉！")
                            if week_time > 18:
                                print("但是晚上没有课，赶快睡觉！")

                        else:
                            print("周末没有课，赶快睡觉！")

                    elif user_choose == choose_false:
                        break
                    else:
                        print("如果不输入则失去查询机会")
                if count == 0:
                    print("您今天的次数已用完，请明天再来")
                    break
            else:
                if count == 0:
                    print("账号密码一直错误，我看您没有机会了")
                    break
                else:
                    print("账号或者密码输入错误，请重新输入")
                    print("您还有", count, "次机会")
                    continue
        elif username in user_data:
            if password in password_data:
                count = 5
                print("欢迎宝贝", username, "登录系统使用~")
                print("您还有", count, "次查询机会")
                # 输入查询日期
                from datetime import datetime
                # 利用num_to_string函数返回中文“星期几”
                def num_to_string(num):
                    numbers = {
                        0: "星期日",
                        1: "星期一",
                        2: "星期二",
                        3: "星期三",
                        4: "星期四",
                        5: "星期五",
                        6: "星期六"
                    }
                    return numbers.get(num, None)


                # 输入指定的日期（年 月 日 ）
                y = int(input("请输入查询年份"))
                m = int(input("请输入查询月份"))
                d = int(input("请输入查询日期"))
                # 调用内置函数datetime来获取指定日期是星期几
                date = datetime.date(datetime(year=y, month=m, day=d))
                #  使用 isoweekday ()函数，得出0~6表示星期一到星期日
                n = str(date.isoweekday())
                #  获取n的值，用int来提取n的整型值
                week = input("{3}".format(y, m, d, num_to_string(int(n))))
                week_day = int(n)

                import datetime

                time = datetime.datetime.today().hour  # 表示现在是几点
                week_time = int(time)

                if week_day == 1:
                    print("你周一有一门课")
                    if week_time < 12:
                        print("但是上午没有课，赶快睡觉！")
                    elif 12 < week_time < 18:  # 用and使两个条件同时成立，否则大于18也会输出下午的课程
                        print("下午有8-9节大学英语10-303")
                    elif week_time > 18:
                        print("但是晚上没有课，赶快睡觉！")

                elif week_day == 2:
                    print("你周二有两门课")
                    if week_time < 12:
                        print("上午有3-5节创业基础1-205")
                    if 12 < week_time < 18:
                        print("下午有8-9节H5互动技术与应用")
                    if week_time > 18:
                        print("但是晚上没有课，赶快睡觉！")

                elif week_day == 3:
                    print("你周三有三门课")
                    if week_time < 12:
                        print("上午有1-2节击剑体育馆西面，3-5节毛概理论9-201")
                    if 12 < week_time < 18:
                        print("但是下午没有课，赶快睡觉！")
                    if week_time > 18:
                        print("晚上有12-13节大学英语10-303")

                elif week_day == 4:
                    print("你周四有两门课")
                    if week_time < 12:
                        print("上午有3-5节Python新综612")
                    if 12 < week_time < 18:
                        print("下午有8-9节毛概实践9-307")
                    if week_time > 18:
                        print("但是晚上没有课，赶快睡觉！")

                elif week_day == 5:
                    print("你周五有一门课：1-2节Ai软件应用新综612")
                    if week_time < 12:
                        print("上午有1-2节Ai软件应用新综612")
                    if 12 < week_time < 18:
                        print("但是下午没有课，赶快睡觉！")
                    if week_time > 18:
                        print("但是晚上没有课，赶快睡觉！")

                else:
                    print("周末没有课，赶快睡觉！")
                count -= 1
                print("是否需要继续查看课表？ "
                          "您还有", count, "次查询机会")
                choose_true = "Y"
                choose_false = "N"
                while True:
                    count -= 1
                    user_choose = input("请输入 Y or N：")
                    if user_choose == choose_true:
                        # 输入查询日期
                        from datetime import datetime


                        # 利用num_to_string函数返回中文“星期几”
                        def num_to_string(num):
                            numbers = {
                                0: "星期日",
                                1: "星期一",
                                2: "星期二",
                                3: "星期三",
                                4: "星期四",
                                5: "星期五",
                                6: "星期六"
                            }
                            return numbers.get(num, None)


                        # 输入指定的日期（年 月 日 ）
                        y = int(input("请输入查询年份"))
                        m = int(input("请输入查询月份"))
                        d = int(input("请输入查询日期"))
                        # 调用内置函数datetime来获取指定日期是星期几
                        date = datetime.date(datetime(year=y, month=m, day=d))
                        #  使用 isoweekday ()函数，得出0~6表示星期一到星期日
                        n = str(date.isoweekday())
                        #  获取n的值，用int来提取n的整型值
                        week = input("{3}".format(y, m, d, num_to_string(int(n))))
                        week_day = int(n)

                        import datetime

                        time = datetime.datetime.today().hour  # 表示现在是几点
                        week_time = int(time)

                        if week_day == 1:
                            print("你周一有一门课")
                            if week_time < 12:
                                print("但是上午没有课，赶快睡觉！")
                            elif 12 < week_time < 18:  # 用and使两个条件同时成立，否则大于18也会输出下午的课程
                                print("下午有8-9节大学英语10-303")
                            elif week_time > 18:
                                print("但是晚上没有课，赶快睡觉！")

                        elif week_day == 2:
                            print("你周二有两门课")
                            if week_time < 12:
                                print("上午有3-5节创业基础1-205")
                            if 12 < week_time < 18:
                                print("下午有8-9节H5互动技术与应用")
                            if week_time > 18:
                                print("但是晚上没有课，赶快睡觉！")

                        elif week_day == 3:
                            print("你周三有三门课")
                            if week_time < 12:
                                print("上午有1-2节击剑体育馆西面，3-5节毛概理论9-201")
                            if 12 < week_time < 18:
                                print("但是下午没有课，赶快睡觉！")
                            if week_time > 18:
                                print("晚上有12-13节大学英语10-303")

                        elif week_day == 4:
                            print("你周四有两门课")
                            if week_time < 12:
                                print("上午有3-5节Python新综612")
                            if 12 < week_time < 18:
                                print("下午有8-9节毛概实践9-307")
                            if week_time > 18:
                                print("但是晚上没有课，赶快睡觉！")

                        elif week_day == 5:
                            print("你周五有一门课：1-2节Ai软件应用新综612")
                            if week_time < 12:
                                print("上午有1-2节Ai软件应用新综612")
                            if 12 < week_time < 18:
                                print("但是下午没有课，赶快睡觉！")
                            if week_time > 18:
                                print("但是晚上没有课，赶快睡觉！")

                        else:
                            print("周末没有课，赶快睡觉！")
                    elif user_choose == choose_false:
                        break
                    else:
                        print("如果不输入则失去查询机会")
                    if count == 0:
                        print("您今天的次数已用完，请明天再来")
                        break
            else:
                if count == 0:
                    print("账号密码一直错误，我看您没有机会了")
                    break
                else:
                    print("账号或者密码输入错误，请重新输入")
                    print("您还有", count, "次机会")
                    continue
        else:
            if count == 0:
                print("账号密码一直错误，我看您没有机会了")
                break
            else:
                print("账号或者密码输入错误，请重新输入")
                print("您还有 ", count, "次机会")
                continue
    else:
        if count == 0:
            print("账号密码一直错误，我看您没有机会了")
            break
        else:
            print("您输入的的账号还未注册")
            print("您还有", count, "次机会")
            continue